AQL (ArangoDB Query Language) হল ArangoDB এর নিজস্ব কোয়েরি ভাষা, যা SQL-এর মতো সহজ এবং কার্যকরী। এটি ডকুমেন্ট, গ্রাফ, এবং কী-মান ডেটা মডেলের উপর কাজ করতে পারে। AQL ব্যবহার করে ডেটা ফিল্টার, সেলেক্ট, আপডেট, ডিলিট এবং আরও অনেক কার্যক্রম সম্পাদন করা যায়।
AQL ব্যবহার করে নিম্নলিখিত কাজগুলো করা যায়:
AQL Syntax সাধারণত SQL-এর মতো এবং নিচের উপাদান নিয়ে গঠিত:
FOR <variable> IN <collection>
FILTER <condition>
RETURN <result>
১. একটি Collection থেকে সব ডকুমেন্ট রিটার্ন করা:
FOR doc IN myCollection
RETURN doc
২. নির্দিষ্ট শর্তে ডেটা ফিল্টার করা:
FOR doc IN myCollection
FILTER doc.age > 25
RETURN doc
৩. ডেটা গ্রুপিং এবং গণনা করা:
FOR doc IN myCollection
COLLECT status = doc.status WITH COUNT INTO count
RETURN { status, count }
AQL একটি শক্তিশালী এবং ডেভেলপার-বান্ধব কোয়েরি ভাষা, যা ArangoDB-এর মাল্টি-মডেল ডেটা মডেলের সাথে কার্যকরভাবে কাজ করে। এর ব্যবহার-সহজ Syntax এবং গ্রাফ ডেটা সমর্থন এটিকে অন্যান্য ডাটাবেস কোয়েরি ভাষার তুলনায় আরও বহুমুখী এবং কার্যকর করে তুলেছে।
AQL (Arango Query Language) ArangoDB এর নিজস্ব একটি শক্তিশালী কোয়েরি ভাষা, যা ডেটা পরিচালনা এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি SQL-এর মতো সিম্পল ও কার্যকর, এবং ArangoDB এর মাল্টি-মডেল ডেটাবেসের জন্য বিশেষভাবে তৈরি।
FOR doc IN myCollection
RETURN doc
এই কোয়েরিটি myCollection
এর সব ডকুমেন্ট ফেরত দেয়।
FOR doc IN myCollection
FILTER doc.age > 25
RETURN doc
এটি myCollection
থেকে শুধুমাত্র তাদের ডকুমেন্ট ফেরত দেয়, যাদের age
২৫ এর বেশি।
FOR doc IN myCollection
SORT doc.name ASC
RETURN doc
এই কোয়েরি name
অনুযায়ী ডকুমেন্টগুলোকে বর্ণানুক্রমিকভাবে সাজায়।
FOR doc IN myCollection
RETURN { name: doc.name, age: doc.age }
এই কোয়েরি name
এবং age
ফিল্ডগুলো সহ একটি JSON অবজেক্ট ফেরত দেয়।
FOR vertex, edge IN 1..2 OUTBOUND 'vertices/A' GRAPH 'myGraph'
RETURN vertex
এটি myGraph
এ vertices/A
থেকে দুই স্তরের মধ্যে সম্পর্কিত নোডগুলো ফেরত দেয়।
FOR doc IN myCollection
COLLECT status = doc.status WITH COUNT INTO count
RETURN { status, count }
এই কোয়েরি status
অনুসারে গ্রুপ করে এবং প্রতিটি গ্রুপের ডকুমেন্ট সংখ্যা গণনা করে।
FOR doc IN myCollection
FILTER doc.age < 18
REMOVE doc IN myCollection
এটি myCollection
থেকে তাদের ডকুমেন্ট মুছে দেয়, যাদের age
১৮ এর কম।
AQL একটি শক্তিশালী কোয়েরি ভাষা যা ArangoDB এর মাল্টি-মডেল আর্কিটেকচারে ডেটা ম্যানেজমেন্ট সহজ করে। এটি SQL-এর মত ব্যবহারযোগ্য এবং JSON ভিত্তিক আউটপুট প্রদানের কারণে ডেভেলপারদের কাছে অত্যন্ত জনপ্রিয়।
AQL (ArangoDB Query Language) ArangoDB-এর নিজস্ব কোয়েরি ভাষা, যা ডেটাবেস থেকে ডেটা রিট্রিভ, ইনসার্ট, আপডেট এবং ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি SQL-এর মতো সহজ এবং ডেভেলপার-বান্ধব।
AQL কোয়েরি গঠনের প্রধান উপাদান:
FOR doc IN collection_name
FILTER doc.attribute == "value"
RETURN doc
Collection থেকে সমস্ত ডেটা রিট্রিভ করার জন্য:
FOR doc IN collection_name
RETURN doc
FOR doc IN collection_name
FILTER doc.age > 25
RETURN doc
FOR doc IN collection_name
RETURN doc.name
FOR doc IN collection_name
FILTER doc.active == true
RETURN doc
FOR doc IN collection_name
FILTER doc.age > 18 AND doc.country == "Bangladesh"
RETURN doc
FOR doc IN collection_name
FILTER doc.salary >= 20000 AND doc.salary <= 50000
RETURN doc
FOR doc IN collection_name
SORT doc.name ASC
RETURN doc
FOR doc IN collection_name
LIMIT 10, 20
RETURN doc
এখানে 10
হল Offset এবং 20
হল Limit।
FOR doc IN collection_name
FILTER doc.status == "active"
COLLECT WITH COUNT INTO total
RETURN total
FOR doc IN collection_name
COLLECT country = doc.country WITH COUNT INTO total
RETURN { country, total }
INSERT { name: "John Doe", age: 30, active: true } INTO collection_name
FOR doc IN collection_name
FILTER doc.name == "John Doe"
UPDATE doc WITH { age: 35 } IN collection_name
FOR doc IN collection_name
FILTER doc.age < 18
REMOVE doc IN collection_name
AQL একটি শক্তিশালী এবং বহুমুখী কোয়েরি ভাষা যা সহজবোধ্য গঠন এবং SQL-এর মতো কার্যক্ষমতা সরবরাহ করে। এর FOR, FILTER, এবং RETURN স্টেটমেন্টের মাধ্যমে ডেটা পরিচালনা সহজতর এবং উন্নত হয়।
ArangoDB তে ডেটা ব্যবস্থাপনা এবং প্রক্রিয়াকরণের জন্য AQL (Arango Query Language) ব্যবহার করা হয়। ডকুমেন্ট Filtering, Sorting, এবং Pagination হল ডেটা ব্যবস্থাপনার গুরুত্বপূর্ণ অংশ, যা ডেটাবেসে দ্রুত এবং কার্যকরভাবে ডেটা পুনরুদ্ধারে সহায়ক।
ফিল্টারিং ব্যবহার করে নির্দিষ্ট মানদণ্ড অনুযায়ী ডেটা নির্বাচন করা যায়।
FOR doc IN myCollection
FILTER doc.age > 25
RETURN doc
ব্যাখ্যা:
myCollection
: টেবিল বা ডকুমেন্ট কালেকশনের নাম।doc.age > 25
: শুধুমাত্র তাদের নির্বাচন করবে যাদের বয়স ২৫ এর বেশি।FOR doc IN myCollection
FILTER doc.age > 25 AND doc.city == "Dhaka"
RETURN doc
ব্যাখ্যা:
AND
ব্যবহার করে একাধিক শর্ত যোগ করা হয়েছে।ডকুমেন্টগুলোকে নির্দিষ্ট ক্রমে সাজানোর জন্য SORT ব্যবহার করা হয়।
FOR doc IN myCollection
SORT doc.name ASC
RETURN doc
ব্যাখ্যা:
ASC
: নামগুলোকে A-Z ক্রমে সাজাবে।FOR doc IN myCollection
SORT doc.name DESC
RETURN doc
ব্যাখ্যা:
DESC
: নামগুলোকে Z-A ক্রমে সাজাবে।FOR doc IN myCollection
SORT doc.age ASC, doc.name DESC
RETURN doc
ব্যাখ্যা:
ডেটার বড় সেট থেকে নির্দিষ্ট সংখ্যক ডকুমেন্ট পুনরুদ্ধার করতে Pagination ব্যবহার করা হয়। এটি সাধারণত LIMIT এবং OFFSET দিয়ে সম্পন্ন করা হয়।
FOR doc IN myCollection
LIMIT 10
RETURN doc
ব্যাখ্যা:
FOR doc IN myCollection
LIMIT 20, 10
RETURN doc
ব্যাখ্যা:
FOR doc IN myCollection
FILTER doc.age > 25
SORT doc.name ASC
LIMIT 10, 5
RETURN doc
ব্যাখ্যা:
এই কার্যক্ষম ফিচারগুলো ArangoDB-কে ডেটাবেস পরিচালনার জন্য আরও কার্যকর করে তোলে।
Aggregation Queries ArangoDB-এর একটি শক্তিশালী ফিচার যা ডেটা বিশ্লেষণ ও সারাংশ তৈরি করার জন্য ব্যবহার করা হয়। ArangoDB-তে AQL (Arango Query Language) ব্যবহার করে বিভিন্ন প্রকার ডেটা অ্যানালাইসিস, যেমন গাণিতিক গড়, সংখ্যা গণনা, সর্বাধিক বা সর্বনিম্ন মান নির্ধারণ, এবং অন্যান্য জটিল অ্যানালাইসিস করা যায়।
নিচের উদাহরণে, একটি "employees" সংগ্রহ থেকে কতজন কর্মচারী আছে তা গণনা করা হয়েছে:
FOR employee IN employees
RETURN LENGTH(employee)
অথবা সরাসরি:
RETURN LENGTH(employees)
কর্মচারীদের বয়সের গড় বের করতে:
FOR employee IN employees
RETURN AVERAGE(employee.age)
কর্মচারীদের সর্বনিম্ন এবং সর্বাধিক বয়স বের করতে:
RETURN {
minAge: MIN(FOR employee IN employees RETURN employee.age),
maxAge: MAX(FOR employee IN employees RETURN employee.age)
}
কর্মচারীদের মোট বেতন যোগ করতে:
FOR employee IN employees
RETURN SUM(employee.salary)
গ্রুপিং এবং প্রতিটি গ্রুপে আইটেম গণনা করতে:
FOR employee IN employees
COLLECT department = employee.department WITH COUNT INTO count
RETURN { department, count }
বিবরণ:
COLLECT
: "department" ফিল্ড অনুযায়ী ডেটা গ্রুপ করে।WITH COUNT INTO count
: প্রতিটি গ্রুপে আইটেম সংখ্যা গণনা করে।একটি কোয়েরিতে একাধিক ফাংশন ব্যবহার করা:
FOR employee IN employees
COLLECT department = employee.department INTO group
RETURN {
department,
totalSalary: SUM(group[*].employee.salary),
avgSalary: AVERAGE(group[*].employee.salary),
employeeCount: LENGTH(group)
}
বিবরণ:
SUM
: বেতনের যোগফল।AVERAGE
: গড় বেতন।LENGTH
: প্রতিটি গ্রুপে কর্মচারীর সংখ্যা।Aggregation Queries ArangoDB-তে জটিল ডেটা অ্যানালাইসিস এবং গ্রুপিংয়ের জন্য অপরিহার্য। "AQL"-এর সাহায্যে বিভিন্ন ধরণের গণনা, গড় নির্ণয়, গ্রুপিং এবং ডেটা বিশ্লেষণ করা সহজ এবং কার্যকর। এটি ডেটা-চালিত সিদ্ধান্ত গ্রহণের জন্য একটি শক্তিশালী হাতিয়ার।
common.read_more